package com.food.eat.util;


import java.util.function.Supplier;

/**
 * .
 * 简介说明: 处理缓存抽象层
 *
 * @author: RenPu
 * @date: 2025/04/14 09:05:38
 * @version: 1.0
 */

public abstract class AbstractCacheHandler {


    /**
     * 获取缓存的结果
     * 如果给定的缓存键在缓存中存在，则直接返回缓存中的值；
     * 如果缓存键不存在，则通过Supplier接口提供的逻辑获取数据，并将结果缓存起来，以便下次使用
     * 此方法的目的是减少对后端服务的请求次数，提高系统的响应速度
     *
     * @param key 缓存的键，用于唯一标识缓存中的数据
     * @param supplier 一个函数接口，当缓存中没有对应键的数据时，会调用这个接口提供的逻辑来获取数据
     * @param <T> 泛型参数，表示方法返回值的类型
     * @return 返回缓存中的数据，如果缓存中没有数据且通过Supplier也无法获取，则返回null
     */
    protected <T> T getCacheResult(String key, Supplier<T> supplier) {
        // 此处省略了方法的具体实现逻辑
        return null;
    }

}
